import { AuthTypeEnum } from "@/enums/LoginEnum";
import { DocumentFileType } from "@/hooks/file/type";

/** 联系方式 */
export interface BotInfo {
  /** 手机号 */
  phone: string;
  /** 是否对外展示手机号 */
  isShowPhone: number;
  /** 邮箱 */
  email: string;
  /** 是否对外展示邮箱 */
  isShowEmail: number;
  /** 微信号 */
  wechatId: string;
  /** 是否对外展示微信号 */
  isShowWechatId: number;
}

/** 智能体公司信息 */
export interface BotCompanyInfo {
  /** ID */
  id?: number;
  /** uuid */
  uuid?: string;
  /** logo */
  logo: string;
  /** 名称 */
  name: string;
  /** 职位 */
  position: string;
  /** 主营业务列表 */
  mainBusinessList: string[];
  /** 公司ID */
  companyId: number | undefined;
  /** 经度 */
  longitude: string;
  /** 纬度 */
  latitude: string;
  /** 地址 */
  address: string;
  /** 地址名称 */
  addressName: string;
  /** 地址字符串 */
  addressStr: string;
  /** 单位介绍 */
  description: string;
  /** 智能体信息 */
  appBotInfoVo?: {
    /** ID */
    id: number;
    /** uuid */
    uuid: string;
    /** 认证类型 */
    certificationType: AuthTypeEnum | null;
    /** 头像 */
    iconFileUrl: string;
    /** 是否对外展示手机号 */
    isShowPhone: number;
    /** 名称 */
    name: string;
    /** 手机号 */
    phone: string;
  }
}

/** 智能体附件信息 */
export interface BotAttachmentInfo {
  /** ID */
  id: number;
  /** 文件名 */
  fileName: string;
  /** 文件UUID */
  fileUuid: string;
  /** 文件路径URL */
  filePathUrl: string;
  /** 文件大小 */
  fileSize: number;
  /** 文件后缀 */
  fileSuffix: DocumentFileType;
  /** 创建事件*/
  createTime: string;
}

/** 智能体产品服务信息 */
export interface BotProductService {
  /** ID */
  id?: number;
  /** 产品名称 */
  name: string;
  /** 产品描述 */
  description: string;
  /** 主图 */
  masterImage: string;
  /** uuid */
  uuid?: string;
}

/** 智能体完整信息 */
export interface BotCardInfo {
  /** ID */
  id?: number;
  /** 名称 */
  name: string;
  /** 头像URL */
  iconFileUrl: string;
  /** 认证类型 */
  certificationType?: AuthTypeEnum;
  /** 描述 */
  description: string;
  /** 身份背景 */
  socialIdentityList: string[];
  /**联系方式 */
  botInfoVo?: BotInfo;
  /** 公司信息列表 */
  botCompanyInfoVoList?: BotCompanyInfo[];
  /** 附件信息列表 */
  botAttachmentInfoVoList?: BotAttachmentInfo[];
  /** 产品服务列表 */
  botProductServiceVoList?: BotProductService[];
  /** 智能体UUID */
  uuid: string
}

/** 天眼查搜索 */
export interface TianyanchaSearch {
  /** 页码 */
  pageNum: number;
  /** 每页条数 */
  pageSize: number;
  /** 关键词 */
  keyword: string;
}

/** 天眼查返回结构 */
export interface TianyanchaResult {
  /** 注册状态 */
  regStatus: string;
  /** 成立时间 */
  estiblishTime: string;
  /** 注册资本 */
  regCapital: string;
  /** 公司类型 */
  companyType: number;
  /** 匹配类型 */
  matchType: string;
  /** 类型 */
  type: number;
  /** 法人姓名 */
  legalPersonName: string;
  /** 注册号 */
  regNumber: string;
  /** 统一社会信用代码 */
  creditCode: string;
  /** 公司名称 */
  name: string;
  /** ID */
  id: number;
  /** 组织机构代码 */
  orgNumber: string;
  /** 公司所在地 */
  base: string;
}


/** 公司详情 */
export interface CompanyDetail {
  /** 公司名称 */
  companyName: string;
  /** 公司成员详情 */
  companyMemberDetails: string | null;
  /** 企业性质 */
  companyEnterpriseNature: string | null;
  /** 企业状态 */
  companyEnterpriseState: string;
  /** 公司网站 */
  companyWebsite: string | null;
  /** 注册地址 */
  companyRegisteredAddress: string;
  /** 注册资本 */
  companyRegCapital: string | null;
  /** 组织机构代码 */
  companyCodsCode: string;
  /** 注册时间 */
  companyRegisteredTime: string;
  /** 组织类型 */
  companyOrgType: string;
  /** 经营范围 */
  companyBusinessScope: string;
  /** 注册资金 */
  companyRegisteredFund: string;
  /** 是否小企业 */
  companySmallEnterprise: string | null;
  /** 企业评分 */
  companyEnterpriseScore: string | null;
  /** 法人姓名 */
  companyLegalPersonName: string;
  /** 企业标签 */
  companyEnterpriseTags: string | null;
  /** 国民行业ID */
  companyNationalIndustryId: string | null;
  /** 企业资质 */
  companyEnterpriseCbzz: string | null;
  /** 是否上市 */
  companyListed: string | null;
}


/** 产品信息 */
export interface ProductInfo {
  /** ID */
  id?: number;
  /** 名称 */
  name: string;
  /** 描述 */
  description: string;
  /** 图片列表 */
  imagesList: string[];
  /** 链接类型 */
  linkType: string;
  /** 链接 */
  link: string;
}